{{tag>Maverick matériel_libre robotique}}
----

====== Arduino ======

Arduino est une plateforme de prototypage à bas coût sous licence Creative Commons. Basée sur les microcontrôleurs ATMEL, elle permet de réaliser rapidement des projets électroniques sur les trois plateformes Linux, Mac et Windows. 

{{:arduino_uno_test.jpg}}


Arduino fournit un utilitaire graphique, ainsi qu'une bibliothèque de fonctions permettant de programmer les cartes.

===== Installation =====

==== À partir des dépôts ====

Depuis Ubuntu 10.10 le paquet Arduino est présent dans les dépôts Universe d'Ubuntu.

Pour l'installer, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>arduino|Arduino]]**.

Depuis [[precise|Ubuntu 12.04]] un utilitaire est présent dans les dépôts il permet de programmer Ardunio en ligne de commande, Pour l'installer, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>arduino-mk|arduino-mk]]**.
==== Depuis l'archive du site officiel ====

Pour installer Arduino à partir de l'archive officielle :

  * télécharger l'archive .tgz (choisir "32 bit" ou "64 bits" selon votre [[architecture_materielle|architecture]]) sur [[http://code.google.com/p/arduino/downloads/list|le site officiel]]
  * [[archivage|extraire l'archive]]
  * Rendre exécutable le fichier 'arduino'
  * Lancer le fichier 'arduino'
**(en)** [[http://www.arduino.cc/playground/Linux/Ubuntu|Plus d'informations sur l'installation d'Arduino pour Ubuntu sur le site Arduino]].

==== Utilisation des ports série du menu====
Le port série n'est pas accessible tant que l'utilisateur n'a pas été ajouté aux groupes "ty" et "dialout"
<code> usermod -a -G tty Nom_Utilisateur </code>
<code> usermod -a -G dialout Nom_Utilisateur </code>

==== Problèmes connus ====
Problème de micro-logiciel utilisés pour la communication par le port USB : Sur les Duemilanove, le CI utilisé pour la communication Série USB entre Arduino et le port USB était un CI FTDI qui fonctionne très bien. Avec la version Arduino UNO, ce CI a été remplacé par un nouveau CI dédié utilisant un micro-logiciel dédié. Ce changement entraîne des problèmes de communication entre le PC et la carte Arduino Uno sous Ubuntu. Ceci est vrai pour les versions avant mai 2011 apparemment. 
Sur ces versions de carte Arduino UNO antérieures à mai 2011, il est nécessaire de mettre à jour le micrologiciel de communication USB de la carte UNO, ce qui se fait par le port USB. Voir la page décrivant la manip : http://arduino.cc/en/Hacking/DFUProgramming8U2
Un site en français explique très bien les opérations à faire : http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUnoMAJFirmwareUSB



=====Utilisation=====

==== Compilation et programmation sous console ====
<note> Cette méthode ne permet peut-être pas d'utiliser les librairies fournie par arduino </note>
Dans cette partie nous allons montrer comment compiler avec avr-gcc et comment charger votre programme dans votre carte arduino.

=== Installation ===
[[apt://gcc-avr | avr-libc | avrdude | binutils-avr]]
=== Compilation ===
avr-gcc s'utilise presque comme gcc, en spécifiant le microcontrolleur de la carte.\\
Par exemple pour une carte arduino UNO, avec un avr atmega328p, on a :
<code> avr-gcc -mmcu=atmega328p -o main.elf main.c </code>
<note tip> La liste des micro-controlleurs supporté est spécifiée dans la doc d'avr-gcc :
<code> man avr-gcc </code> </note>

Puis on extrait les données utilisable par le micro-controlleur :
<code> objcopy -O ihex -R .eeprom main.elf main.hex </code>


=== Programmateur ===
La programmation de la carte se fait avec avrdude. Il faut lui spécifier, le programmateur, le micro-contrôleur, et le port sur lequel la carte est branché.\\
Dans notre exemple le programmateur est un "stk500v2", mais un type de programmateur plus spécifique à été créé : "arduino".\\
Le micro-controleur sera cet fois si : m328p.
<note tip> La encore, la liste des micro-controlleur et programmateur supporté ce trouve dans la doc : <code> man avrdude </code> </note>
On a par exemple :
<code> sudo avrdude -c arduino -p m328p  -P /dev/cuaU0 -U flash:w:main.hex </code>
<note important>  Le port peut varier. On peut le retrouver en comparant les fichiers dans /dev/ avant et après le branchement de la carte. Le fichier qui apparaîtra sera sûrement le port à choisir </note>



==== Simulation de l'Arduino ====

Il existe un petit logiciel qui permet de simuler son utilisation, mais il ne semble pas fonctionner sous wine, une machine virtuelle windows est ici nécessaire, il s'appelle [[http://www.virtualbreadboard.net/VBB/Download/tabid/150/Default.aspx|VBB]] .

Il existe un logiciel pour dessiner les plans des cartes électroniques pour l'arduino : [[fritzing]].

Il est possible de contrôler l'Arduino par le biais de Scratch [[scratch#etendre_les_capacites_du_logiciel|scratch]].

=====Voir aussi=====
  * [[http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.HomePage|Une version française du site Arduino]]
  * [[http://www.arduino.cc/fr/|Version officielle en français sur le site Arduino]]
  * Le tutoriel Arduino pour les débutants sur le [[http://sciences.siteduzero.com/tutoriel-3-515602-arduino-pour-bien-commencer-en-electronique-et-en-programmation.html|Site du Zéro Science]]
  * [[http://fr.flossmanuals.net/arduino/|Manuel français sur arduino]] et l'électronique libre, réalisé par Flossmanuals Francophone


----
//Contributeurs : [[:utilisateurs:mimilus|mimilus]], pygmee, [[:utilisateurs:samclia]].//